package 移动零;

//给定一个数组 nums，编写一个函数将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。
//
//请注意 ，必须在不复制数组的情况下原地对数组进行操作。
//
//
//
//示例 1:
//
//输入: nums = [0,1,0,3,12]
//输出: [1,3,12,0,0]
//示例 2:
//
//输入: nums = [0]
//输出: [0]
public class Solution
{
    public void moveZeroes(int[] nums) {
        //统计有多少个0
        //把不为0的在前面一次排开，统计第一个出现不为0，在数组对应位置赋值
        //把0放到后面
        int cnt_0=0;
        for (int i = 0; i < nums.length; i++)
        {
            if (nums[i]==0){
                cnt_0++;
            }
        }
        int index=0;
        for (int i = 0; i < nums.length; i++)
        {
            if (nums[i]!=0){
                nums[index]=nums[i];
                index++;
            }
        }
        for (int i = 0; i < cnt_0; i++)
        {
            nums[nums.length-1-i]=0;
        }


    }
}
